package cn.yinyu.queue.module.ecg.service.jobrecord;

import java.time.LocalDateTime;
import java.util.*;
import cn.yinyu.queue.module.ecg.controller.admin.jobrecord.vo.*;
import cn.yinyu.queue.module.ecg.dal.dataobject.jobrecord.JobRecordDO;
import cn.yinyu.queue.framework.common.pojo.PageResult;
import cn.yinyu.queue.framework.common.pojo.PageParam;
import cn.yinyu.queue.module.ecg.dal.dataobject.jobrecord.JobRecordStatisticDO;

import javax.validation.Valid;

/**
 * 工作记录 Service 接口
 *
 * @author 垠域源码
 */
public interface JobRecordService {

    /**
     * 创建工作记录
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createJobRecord(@Valid JobRecordSaveReqVO createReqVO);

    /**
     * 更新工作记录
     *
     * @param updateReqVO 更新信息
     */
    void updateJobRecord(@Valid JobRecordSaveReqVO updateReqVO);

    /**
     * 删除工作记录
     *
     * @param id 编号
     */
    void deleteJobRecord(Long id);

    /**
     * 获得工作记录
     *
     * @param id 编号
     * @return 工作记录
     */
    JobRecordDO getJobRecord(Long id);

    /**
     * 获得工作记录分页
     *
     * @param pageReqVO 分页查询
     * @return 工作记录分页
     */
    PageResult<JobRecordDO> getJobRecordPage(JobRecordPageReqVO pageReqVO);

    /**
     * 作业统计
     * @param jobTimeFrom
     * @param jobTimeTo
     * @return
     */
    List<JobRecordStatisticDO> getJobStatistic(LocalDateTime jobTimeFrom, LocalDateTime jobTimeTo);
}